package main

import "fmt"

func main() {
	//a := [][]byte{{'5', '3', '.', '.', '7', '.', '.', '.', '.'}, {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, {'.', '9', '8', '.', '.', '.', '.', '6', '.'}, {'8', '.', '.', '.', '6', '.', '.', '.', '3'}, {'4', '.', '.', '8', '.', '3', '.', '.', '1'}, {'7', '.', '.', '.', '2', '.', '.', '.', '6'}, {'.', '6', '.', '.', '.', '.', '2', '8', '.'}, {'.', '.', '.', '4', '1', '9', '.', '.', '5'}, {'.', '.', '.', '.', '8', '.', '.', '7', '9'}}
	//solveSudoku2(a)

	//fmt.Println(countAndSay(4))

	//fmt.Println(combinationSum2([]int{1, 1, 2, 2, 2, 2}, 8))

	//fmt.Println(firstMissingPositive([]int{3, 4, -1, 1}))

	//fmt.Println(isMatch("adceb", "*a*b"))

	//fmt.Println(jump([]int{4, 1, 1, 3, 1, 1, 1}))

	//fmt.Println(permute([]int{1, 2, 3}))

	//a := permuteUnique([]int{-1, 2, -1, 2, 1, -1, 2, 1})
	//
	//for i := 0; i < len(a); i++ {
	//	for j := i + 1; j < len(a); j++ {
	//		if equal(a[i], a[j]) {
	//			fmt.Println(i, j)
	//			fmt.Println(a[i], a[j])
	//		}
	//	}
	//	fmt.Println(a[i])
	//}
	//a := [][]int{
	//	{1, 2, 3, 4},
	//	{5, 6, 7, 8},
	//	{9, 10, 11, 12},
	//	{13, 14, 15, 16},
	//}
	//rotate(a)
	//fmt.Println(a)

	fmt.Println(groupAnagrams([]string{"eat", "tea", "tan", "ate", "nat", "bat"}))
}

func equal(a, b []int) bool {
	for i := 0; i < len(a); i++ {
		if a[i] != b[i] {
			return false
		}
	}
	return true
}
